﻿namespace System
{
    [ImportClass(string.Empty, "Error")]
    public class Exception
    {
        public string name;
        public string message;

        public Exception()
        {
        }

        public Exception(string msg)
        {
            this.message = msg;
        }
    }

    [ImportClass(string.Empty, "EvalError")]
    public sealed class EvalError : Exception
    {
        public EvalError(string msg)
            : base(msg)
        {
        }
    }

    [ImportClass(string.Empty, "RangeError")]
    public sealed class RangeError : Exception
    {
        public RangeError(string msg)
            : base(msg)
        {
        }
    }

    [ImportClass(string.Empty, "ReferenceError")]
    public sealed class ReferenceError : Exception
    {
        public ReferenceError(string msg)
            : base(msg)
        {
        }
    }

    [ImportClass(string.Empty, "SyntaxError")]
    public sealed class SyntaxError : Exception
    {
        public SyntaxError(string msg)
            : base(msg)
        {
        }
    }

    [ImportClass(string.Empty, "TypeError")]
    public sealed class TypeError : Exception
    {
        public TypeError(string msg)
            : base(msg)
        {
        }
    }

    [ImportClass(string.Empty, "URIError")]
    public sealed class URIError : Exception
    {
        public URIError(string msg)
            : base(msg)
        {
        }
    }
}
